草庐IT

C++ 精度 : String to Double

全部标签

.net - .net 中的高精度休眠/等待

背景:我用F#/.net写了一个gameboy模拟器。在gameboy中,vblank(~fps)约为60Hz,并且与游戏速度相关,因此模拟器的运行速度尽可能接近60fps非常重要。由于现代计算机可以比60fps更快地运行我的模拟器,因此我需要降低模拟器的速度。我目前的做法是计算两个VBlank之间的时间,然后等待该vblank周期的剩余时间。问题在于如何在不忙于循环cpu的情况下等待。由于我通常需要等待几毫秒(有时更长,有时更少),内置的Thread.sleep函数不是一个好的选择,因为除非您指定0等待时间,否则它将至少休眠~15毫秒,这是太长了(而且不准确)。我目前的方法是使用sl

c++ - 高精度事件定时器

#include"target.h"#include"xcp.h"#include"LocatedVars.h"#include"osek.h"/***Thistaskisactivatedevery10ms.*/longOSTICKDURATION;TASK(Task10ms){voidXCP_FN_TYPEXcp_CmdProcessor(void);uint32startTime=GetQueryPerformanceCounter();/*TriggerDAQforthe10msXCPraster.*/if(XCPEVENT_DAQ_OVERLOAD&Xcp_DoDaqForE

.net - 以高(亚秒)精度配置 Windows 时间

http://time.is/即使我最近强制将Windows时钟与某些Internet时间服务器(例如time.windows.com或time.nist.gov)同步,也会不断报告我的系统时钟关闭了几秒钟(通常提前)。这使得与远程服务器集成的组件的开发变得复杂,如果我的时间戳超过秒数,就会断开我的连接。我们的生产硬件有专门的硬件时钟供应商,精度为微秒。在开发环境中我不需要这样的东西,但需要不低于秒的精度。是否有任何公共(public)时间服务器或可靠的时间同步实用程序可以实现此目的?编辑1:我发现并回答了不同的问题,这些问题实际上也回答了我的问题。https://serverfaul

c++ - 在 windows 中以 1ms 的精度找出时间的最快方法是什么?

对绝对时间感兴趣,而不是测量持续时间的方法。Win32APIC++ 最佳答案 为此你需要特殊的硬件。尽管WindowsAPI报告毫秒,但根据此讨论,它并不完全准确:MostintelpentiumbasePC's(I'mnotsureaboutothers)haveatimerchiponthemotherboardthathasa1.19318166667MHzcounter.ThecountercountsdownfromN(bydefaultN=65535)to1attherateof1.19318166667MHz.Thes

java - 是否可以在 Windows XP 中开发微秒级时间精度的实时数据采集系统?

对于我的一个项目,我需要开发一个软件,该软件需要在从应用程序接收到触发器后在100毫秒内从并行端口获取2000个数据。这意味着并行端口需要以50微秒的间隔读取。数据频率设置为10KHz。因此,这个采集过程应该是实时的,精度为微秒级。我正在尝试用Java编程。到目前为止,我已经能够从并行端口获取数据,但很难保持时间间隔。我的问题是:这样的时间(微秒)精度真的可以在windowsxp环境下完成吗?如果是,能否请您指出一些指南/资源?如有任何帮助,我们将不胜感激。 最佳答案 这取决于您的软件是否必须可靠地工作或仅在大多数情况下工作。对于普

c++ - OpenCL 速度和浮点精度

我刚刚开始使用OpenCL。但是,我发现OpenCl有一些奇怪的行为,我无法理解。我构建和测试的来源是http://www.codeproject.com/Articles/110685/Part-1-OpenCL-Portable-Parallelism.我有一个ATIRadeonHD4770和一个AMDFx62003.8ghz6核cpu。速度首先速度与最大工作组项目数不是线性关系。我运行Appprofiler来分析内核执行期间花费的时间。结果有点震惊,我的GPU每组只能处理256个工作项,用了2.23008毫秒来计算5079040个数字的平方。请注意,这没有考虑内核加载时间....

c - Windows中c的 sleep 功能。是否存在精度更高的函数?

我想知道是否有人知道可以在c的窗口中使用的更好的sleep函数,而不是Sleep(),它需要毫秒输入并且只保证输入是经过的最小时间量。我在1毫秒内传递,但实际上有15-16毫秒的延迟。有什么办法可以准确设置指定的休眠时间吗? 最佳答案 不,不是真的。当您告诉您的程序休眠时,您将放弃处理器并让操作系统决定下一步做什么。一旦操作系统处于控制之下,它就会决定何时给您的程序另一片处理时间。这就是为什么您可以指定最小值,但不能保证操作系统会在任何特定时间返回到您的进程。 关于c-Windows中c

c++ - 在 Visual Studio 中将单精度浮点与 FFTW 结合使用

我正在尝试使用FFTWVisualStudio项目中的库,但我无法使浮点精度正常工作。我已经创建了库文件并将它们链接到这个post我只包含了libfftw3f-3.lib库,正如它在他们的documentation中所说的那样,除fftw_plan_dft_r2c_2d()函数外,其他一切都很好。它不会接受我的float*类型数组作为参数3,因为它与其类型double*的参数不兼容。我知道这只是精度,但我更愿意使用float,因为fftw确实支持它,而且我memcpy()从float组中获取数据的方式b/c。我只是遇到了使用float的fftw库的问题。除了链接到libfftw3f-3

c# - Thread.Sleep 的精度还很差吗?

我的印象是Thread.Sleep(x)并不精确,它所做的只是让线程在最小值x女士。参见here,here和here.当sleep时间很短时,例如1ms,预计你会发现线程偶尔会休眠大约15ms。这是apparently由于时钟中断率默认为每秒64次。几年前我尝试过这个,事实上,我也体验过15ms分辨率。但是,我刚刚再次尝试,现在我看到了1ms到2ms的分辨率,很少>2ms。有什么变化?.NET是否发生了变化(我现在使用的是4.6,不记得我2年前使用的是什么)?也许是操作系统发生了变化?(我使用过并且仍在使用AWSEC2WindowsServer,但也许有更新。)我的简单测试程序:pri

c# - 确定输入数字的小数精度

我们有一个有趣的问题是我们需要确定用户输入(文本框)的小数精度。本质上,我们需要知道输入的小数位数,然后返回一个精确数字,最好用示例来说明这一点:输入4500会产生结果1输入4500.1将产生结果0.1输入4500.00将产生结果0.01输入4500.450将产生结果0.001我们正在考虑使用字符串,找到小数点分隔符,然后计算结果。只是想知道是否有更简单的解决方案。 最佳答案 我认为你应该按照你的建议去做——使用小数点的位置。明显的缺点可能是您必须自己考虑国际化。vardecimalSeparator=NumberFormatInf